package utilidades.number;

import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javafx.beans.InvalidationListener;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.ReadOnlyBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.control.Control;
import javafx.scene.control.TextField;
import javafx.util.converter.NumberStringConverter;

/**
 * Fertonani oscar
 */
public class DateTextField extends TextField {

   
    private SimpleObjectProperty<Date> fechaActual = new SimpleObjectProperty<>();
   
    //Si quiero q no tenga puntos ni nada....
   // NumberFormat nf =  new DecimalFormat("###");
    
    //Si quiero q este separado por tres puntos
    //NumberFormat nf =  new DecimalFormat("###,###");
    
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    
   
   
   
   
    

    public final Date getNumber() {
        return fechaActual.get();
    }

    public final void setDate(Date value) {
        fechaActual.set(value);
    }

    public SimpleObjectProperty<Date>  dateProperty() {
        return fechaActual;
    }

    public DateTextField() {

        
       super();
       
       /*
     // simbolo.setDecimalSeparator('-');
      simbolo.setGroupingSeparator('-');
      final  DecimalFormat nf =  new DecimalFormat("###,###",simbolo);
        */
       fechaActual.set(new Date());
       
       textProperty().bindBidirectional(fechaActual, df);
       
       
       focusedProperty().addListener(new ChangeListener<Boolean>() {

            @Override
            public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                if (!newValue.booleanValue()) {
                     
                    setText(df.format(fechaActual.get()));
                    }
                
            }
        });
      
       
       
    }
    
    
    


   

    

     /* @Override public void replaceText(int start, int end, String text) {
        // If the replaced text would end up being invalid, then simply
        // ignore this call!
         
        if (!text.matches("[a-z]|[A-Z]")) {
            super.replaceText(start, end, text);  
        }
       
    }
 
    @Override public void replaceSelection(String text) {
           
        if (!text.matches("[a-z]|[A-Z]")) {
            super.replaceSelection(text);
             this.number.set(Integer.parseInt(text));
        }
    }*/
    
    
    
    
    
}
